登录 白背景

400. 第 N 位数字

https://leetcode-cn.com/problems/nth-digit/

  • 提交时间:2021-11-30 11:03:14
  • 执行用时:0 ms, 在所有 Go 提交中击败了100.00%的用户
  • 内存消耗:1.9 MB, 在所有 Go 提交中击败了37.33%的用户
  • 通过测试用例:71 / 71
func findNthDigit(n int) int {
    var num float64
    if n < 10 {
        return n
    }
    for i := 1; i <= 31; i++ {
        num = math.Pow(10, float64(i))
        if num <= float64(n/i) {
            // fmt.Printf("pos1_num:%+v,n:%+v,i:%+v\n", num, n, i)
            //n往上加
            n = n + int(num)
            continue
        }
        // fmt.Printf("pos2_num:%+v,n:%+v,i:%+v\n", num, n, i)
        //算答案
        targetNum := strconv.Itoa(n / i)
        targetPos := n % i
        // fmt.Printf("targetNum:%+v,targetPos:%+v\n", targetNum, targetPos)
        ans, _ := strconv.Atoi(string(targetNum[targetPos]))
        return ans
    }
    return 0
}